import axios from 'axios'
import { ElMessage } from 'element-plus'
// import router from '@/router/index'
import config from '../../config/config.js'


// 这边由于后端没有区分测试和正式，姑且都写成一个接口。
axios.defaults.baseURL = config[process.env.NODE_ENV].baseUrl
// 携带 cookie，对目前的项目没有什么作用，因为我们是 token 鉴权
axios.defaults.withCredentials = true
// 请求头，headers 信息
axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'
axios.defaults.headers['token'] = ''
// 默认 post 请求，使用 application/json 形式
axios.defaults.headers.post['Content-Type'] = 'application/json'

// 请求拦截器，内部根据返回值，重新组装，统一管理。
axios.interceptors.response.use(res => {
  if (res?.data) {
    const data = res.data;
    if (typeof data !== 'object') {
      ElMessage.error('服务端异常！')
      return Promise.resolve(res)
    }
    const status = data?.status || {}
    if (status.statuscode != 0) {
      if (status.message) {
        ElMessage.error({
            message: status.message
        })
      }
      // if (status.statuscode == -998) {
      //   router.push({ path: '/login' })
      // }
      return Promise.resolve(data)
    }
    return data
  }
})

export default axios